[INFO] fetching crate llm-wasm 0.1.0...
[INFO] testing llm-wasm-0.1.0 against try#0abe69e6c16114311cc2700e972492e64d69c28f for pr-154065-1
[INFO] extracting crate llm-wasm 0.1.0 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate llm-wasm 0.1.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate llm-wasm 0.1.0
[INFO] tweaked toml for crates.io crate llm-wasm 0.1.0 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate llm-wasm 0.1.0 on toolchain 0abe69e6c16114311cc2700e972492e64d69c28f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate llm-wasm 0.1.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 46ae82c2c34dc1c8b5025f537357f38773ba65cefe0d1c4c8e3ab19e3b5da8c0
[INFO] running `Command { std: "docker" "start" "-a" "46ae82c2c34dc1c8b5025f537357f38773ba65cefe0d1c4c8e3ab19e3b5da8c0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "46ae82c2c34dc1c8b5025f537357f38773ba65cefe0d1c4c8e3ab19e3b5da8c0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "46ae82c2c34dc1c8b5025f537357f38773ba65cefe0d1c4c8e3ab19e3b5da8c0", kill_on_drop: false }`
[INFO] [stdout] 46ae82c2c34dc1c8b5025f537357f38773ba65cefe0d1c4c8e3ab19e3b5da8c0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a04019c7208fc1c1fb43b475bd3a6d4ec7d85ada1e1ffa63b8e14d9e73c09fcd
[INFO] running `Command { std: "docker" "start" "-a" "a04019c7208fc1c1fb43b475bd3a6d4ec7d85ada1e1ffa63b8e14d9e73c09fcd", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling llm-wasm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.23s
[INFO] running `Command { std: "docker" "inspect" "a04019c7208fc1c1fb43b475bd3a6d4ec7d85ada1e1ffa63b8e14d9e73c09fcd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a04019c7208fc1c1fb43b475bd3a6d4ec7d85ada1e1ffa63b8e14d9e73c09fcd", kill_on_drop: false }`
[INFO] [stdout] a04019c7208fc1c1fb43b475bd3a6d4ec7d85ada1e1ffa63b8e14d9e73c09fcd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 04202d835ebf8e17f9a23c9cd305656b74efbd57bc92b602895d8e84dae8d142
[INFO] running `Command { std: "docker" "start" "-a" "04202d835ebf8e17f9a23c9cd305656b74efbd57bc92b602895d8e84dae8d142", kill_on_drop: false }`
[INFO] [stderr]    Compiling llm-wasm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.83s
[INFO] running `Command { std: "docker" "inspect" "04202d835ebf8e17f9a23c9cd305656b74efbd57bc92b602895d8e84dae8d142", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "04202d835ebf8e17f9a23c9cd305656b74efbd57bc92b602895d8e84dae8d142", kill_on_drop: false }`
[INFO] [stdout] 04202d835ebf8e17f9a23c9cd305656b74efbd57bc92b602895d8e84dae8d142
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] cdf4bbaa00dac043a008d47cdbc6e524c94eb5bd38abe24ab09150b03e67d6c5
[INFO] running `Command { std: "docker" "start" "-a" "cdf4bbaa00dac043a008d47cdbc6e524c94eb5bd38abe24ab09150b03e67d6c5", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/llm_wasm-7ae9ff4f183c1c9e)
[INFO] [stdout] running 84 tests
[INFO] [stdout] test cache::tests::test_cache_key_includes_messages ... ok
[INFO] [stdout] test cache::tests::test_fnv1a_hash_is_deterministic ... ok
[INFO] [stdout] test cache::ttl::tests::test_ttl_cache_expired_returns_none ... ok
[INFO] [stdout] test cache::ttl::tests::test_ttl_cache_get_missing_returns_none ... ok
[INFO] [stdout] test cache::tests::test_cache_key_includes_model ... ok
[INFO] [stdout] test cache::tests::test_fnv1a_hash_different_inputs_differ ... ok
[INFO] [stdout] test cache::tests::test_fnv1a_hash_empty_string_is_stable ... ok
[INFO] [stdout] test cache::ttl::tests::test_ttl_cache_is_empty_initially ... ok
[INFO] [stdout] test cache::ttl::tests::test_ttl_cache_len_tracks_entries ... ok
[INFO] [stdout] test cache::ttl::tests::test_ttl_cache_overwrite_updates_timestamp ... ok
[INFO] [stdout] test cache::ttl::tests::test_ttl_cache_purge_expired_removes_old_entries ... ok
[INFO] [stdout] test cache::ttl::tests::test_ttl_cache_set_and_get_returns_value ... ok
[INFO] [stdout] test cost::tests::test_cost_ledger_entry_count ... ok
[INFO] [stdout] test cost::tests::test_cost_ledger_exceeded_budget_false_under_limit ... ok
[INFO] [stdout] test cost::tests::test_cost_ledger_total_always_non_negative ... ok
[INFO] [stdout] test cost::tests::test_cost_ledger_record_known_model_ok ... ok
[INFO] [stdout] test cost::tests::test_pricing_for_all_known_models ... ok
[INFO] [stdout] test cost::tests::test_pricing_cost_usd_calculation ... ok
[INFO] [stdout] test cost::tests::test_cost_ledger_record_unknown_model_err ... ok
[INFO] [stdout] test cost::tests::test_cost_ledger_no_budget_never_exceeded ... ok
[INFO] [stdout] test cost::tests::test_cost_ledger_total_accumulates ... ok
[INFO] [stdout] test error::tests::test_budget_exceeded_display ... ok
[INFO] [stdout] test error::tests::test_cache_error_display ... ok
[INFO] [stdout] test error::tests::test_from_serde_json_error ... ok
[INFO] [stdout] test error::tests::test_guard_blocked_display ... ok
[INFO] [stdout] test error::tests::test_invalid_config_display ... ok
[INFO] [stdout] test error::tests::test_no_route_matched_display ... ok
[INFO] [stdout] test error::tests::test_retry_exhausted_display ... ok
[INFO] [stdout] test error::tests::test_serialization_error_display ... ok
[INFO] [stdout] test error::tests::test_template_error_display ... ok
[INFO] [stdout] test format::tests::test_json_formatter_extract_array ... ok
[INFO] [stdout] test format::tests::test_json_formatter_extract_from_prose ... ok
[INFO] [stdout] test format::tests::test_json_formatter_extract_valid_json ... ok
[INFO] [stdout] test cost::tests::test_cost_ledger_exceeded_budget_true_over_limit ... ok
[INFO] [stdout] test format::tests::test_json_formatter_invalid_returns_error ... ok
[INFO] [stdout] test format::tests::test_json_formatter_is_valid_json_false ... ok
[INFO] [stdout] test format::tests::test_json_formatter_is_valid_json_true ... ok
[INFO] [stdout] test format::tests::test_markdown_has_code_fence_false ... ok
[INFO] [stdout] test format::tests::test_json_formatter_nested_object ... ok
[INFO] [stdout] test format::tests::test_markdown_has_code_fence_true ... ok
[INFO] [stdout] test format::tests::test_markdown_no_fence_unchanged ... ok
[INFO] [stdout] test format::tests::test_markdown_strip_code_fence ... ok
[INFO] [stdout] test format::tests::test_markdown_strip_fence_no_language_tag ... ok
[INFO] [stdout] test guard::tests::test_content_guard_allows_clean_request ... ok
[INFO] [stdout] test guard::tests::test_content_guard_blocks_blocklisted_term ... ok
[INFO] [stdout] test guard::tests::test_content_guard_case_insensitive ... ok
[INFO] [stdout] test guard::tests::test_guard_chain_allows_clean_request ... ok
[INFO] [stdout] test guard::tests::test_guard_chain_empty_allows_everything ... ok
[INFO] [stdout] test guard::tests::test_guard_chain_length_blocks ... ok
[INFO] [stdout] test guard::tests::test_guard_chain_stops_at_first_block ... ok
[INFO] [stdout] test guard::tests::test_length_guard_allows_at_exact_limit ... ok
[INFO] [stdout] test guard::tests::test_length_guard_allows_under_limit ... ok
[INFO] [stdout] test guard::tests::test_length_guard_blocks_over_limit ... ok
[INFO] [stdout] test retry::tests::test_retry_delay_never_exceeds_max ... ok
[INFO] [stdout] test retry::tests::test_retry_policy_delay_increases_with_attempts ... ok
[INFO] [stdout] test retry::tests::test_retry_policy_exponential_defaults ... ok
[INFO] [stdout] test retry::tests::test_retry_policy_new_base_exceeds_max_err ... ok
[INFO] [stdout] test retry::tests::test_retry_policy_new_ok ... ok
[INFO] [stdout] test retry::tests::test_retry_policy_new_zero_attempts_err ... ok
[INFO] [stdout] test retry::tests::test_retry_policy_should_not_retry_beyond_max ... ok
[INFO] [stdout] test retry::tests::test_retry_policy_should_not_retry_on_400 ... ok
[INFO] [stdout] test retry::tests::test_retry_policy_should_not_retry_on_401_403_404 ... ok
[INFO] [stdout] test retry::tests::test_retry_policy_should_retry_on_429 ... ok
[INFO] [stdout] test retry::tests::test_retry_policy_should_retry_on_500_series ... ok
[INFO] [stdout] test routing::tests::test_router_always_condition_matches ... ok
[INFO] [stdout] test routing::tests::test_router_first_matching_rule_wins ... ok
[INFO] [stdout] test routing::tests::test_router_max_tokens_below_condition ... ok
[INFO] [stdout] test routing::tests::test_router_message_count_condition ... ok
[INFO] [stdout] test routing::tests::test_router_model_name_contains_condition ... ok
[INFO] [stdout] test routing::tests::test_router_returns_fallback_when_no_rules ... ok
[INFO] [stdout] test routing::tests::test_routing_condition_serialization_roundtrip ... ok
[INFO] [stdout] test template::tests::test_template_render_multiple_variables ... ok
[INFO] [stdout] test template::tests::test_template_render_no_tags_passthrough ... ok
[INFO] [stdout] test template::tests::test_template_render_partial_substitution ... ok
[INFO] [stdout] test template::tests::test_template_render_partial_with_variable ... ok
[INFO] [stdout] test template::tests::test_template_render_substitutes_variable ... ok
[INFO] [stdout] test template::tests::test_template_render_unclosed_tag_errors ... ok
[INFO] [stdout] test template::tests::test_template_render_unknown_partial_errors ... ok
[INFO] [stdout] test template::tests::test_template_render_unknown_variable_leaves_placeholder ... ok
[INFO] [stdout] test types::tests::test_chat_message_new ... ok
[INFO] [stdout] test types::tests::test_chat_request_total_content_chars ... ok
[INFO] [stdout] test types::tests::test_chat_response_fields ... ok
[INFO] [stdout] test types::tests::test_role_serialization_roundtrip ... ok
[INFO] [stdout] test types::tests::test_stream_chunk_finished_flag ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 84 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cache_retry_integration.rs (/opt/rustwide/target/debug/deps/cache_retry_integration-417af98b415efe61)
[INFO] [stdout] 
[INFO] [stdout] running 29 tests
[INFO] [stdout] test cache_key_model_separator_matters ... ok
[INFO] [stdout] test cache_stores_multiple_model_responses ... ok
[INFO] [stdout] test cache_key_symmetric_variation ... ok
[INFO] [stdout] test cached_response_skips_retry_simulation ... ok
[INFO] [stdout] test hash_case_sensitive ... ok
[INFO] [stdout] test cache_key_deterministic_across_calls ... ok
[INFO] [stdout] test hash_different_strings_likely_differ ... ok
[INFO] [stdout] test hash_long_string_stable ... ok
[INFO] [stdout] test hash_single_char_differs_from_empty ... ok
[INFO] [stdout] test retry_policy_all_retryable_codes ... ok
[INFO] [stdout] test retry_policy_base_exceeds_max_is_invalid ... ok
[INFO] [stdout] test retry_policy_custom_params ... ok
[INFO] [stdout] test hash_empty_string_is_stable ... ok
[INFO] [stdout] test retry_policy_base_equals_max_is_valid ... ok
[INFO] [stdout] test retry_policy_delay_at_attempt_1_is_base ... ok
[INFO] [stdout] test retry_policy_exhausted_after_max_attempts ... ok
[INFO] [stdout] test retry_policy_delay_caps_at_max ... ok
[INFO] [stdout] test retry_policy_invalid_zero_attempts ... ok
[INFO] [stdout] test ttl_cache_exact_ttl_boundary_is_expired ... ok
[INFO] [stdout] test ttl_cache_expired_removes_entry ... ok
[INFO] [stdout] test ttl_cache_miss_returns_none ... ok
[INFO] [stdout] test ttl_cache_overwrite_refreshes_timestamp ... ok
[INFO] [stdout] test ttl_cache_basic_set_get ... ok
[INFO] [stdout] test ttl_cache_is_empty_after_purge_all ... ok
[INFO] [stdout] test ttl_cache_just_under_ttl_is_fresh ... ok
[INFO] [stdout] test ttl_cache_multiple_entries_independent_ttls ... ok
[INFO] [stdout] test ttl_cache_purge_on_empty_is_zero ... ok
[INFO] [stdout] test ttl_cache_purge_expired_removes_correct_count ... ok
[INFO] [stdout] test retry_policy_non_retryable_codes ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cost_routing.rs (/opt/rustwide/target/debug/deps/cost_routing-fe32532295774b9d)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test test_ledger_accumulates_across_multiple_routed_requests ... ok
[INFO] [stdout] test test_route_then_record_cost ... ok
[INFO] [stdout] test test_budget_enforced_after_routing ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/full_pipeline.rs (/opt/rustwide/target/debug/deps/full_pipeline-338d82781cb308bb)
[INFO] [stdout] 
[INFO] [stdout] running 47 tests
[INFO] [stdout] test content_guard_multiple_blocked_terms ... ok
[INFO] [stdout] test chat_request_empty_messages ... ok
[INFO] [stdout] test chat_message_stores_role_and_content ... ok
[INFO] [stdout] test chat_request_total_chars ... ok
[INFO] [stdout] test chat_response_token_sum ... ok
[INFO] [stdout] test content_guard_partial_word_match ... ok
[INFO] [stdout] test cost_ledger_budget_exceeded_on_single_expensive_call ... ok
[INFO] [stdout] test cost_ledger_new_is_empty ... ok
[INFO] [stdout] test cost_ledger_no_budget_never_exceeds ... ok
[INFO] [stdout] test cost_ledger_records_accumulate ... ok
[INFO] [stdout] test guard_chain_all_pass_returns_none ... ok
[INFO] [stdout] test guard_chain_first_guard_blocks_second_not_evaluated ... ok
[INFO] [stdout] test json_extract_nested ... ok
[INFO] [stdout] test json_extract_array_of_objects ... ok
[INFO] [stdout] test json_is_valid_accepts_primitives ... ok
[INFO] [stdout] test json_is_valid_rejects_incomplete ... ok
[INFO] [stdout] test length_guard_counts_all_messages ... ok
[INFO] [stdout] test markdown_strip_json_fence ... ok
[INFO] [stdout] test markdown_strip_no_fence_unchanged ... ok
[INFO] [stdout] test cost_ledger_just_at_budget_succeeds ... ok
[INFO] [stdout] test markdown_strip_rust_fence ... ok
[INFO] [stdout] test markdown_has_fence_detection ... ok
[INFO] [stdout] test pipeline_guard_allows_then_routes_then_costs ... ok
[INFO] [stdout] test pipeline_guard_blocks_before_routing ... ok
[INFO] [stdout] test pipeline_template_generates_request ... ok
[INFO] [stdout] test pricing_opus_more_expensive_than_sonnet ... ok
[INFO] [stdout] test pricing_for_all_claude_models ... ok
[INFO] [stdout] test role_variants_serialize ... ok
[INFO] [stdout] test pricing_cost_only_output_tokens ... ok
[INFO] [stdout] test router_max_tokens_below ... ok
[INFO] [stdout] test router_message_count_threshold ... ok
[INFO] [stdout] test router_always_condition_overrides_fallback ... ok
[INFO] [stdout] test pricing_cost_only_input_tokens ... ok
[INFO] [stdout] test router_no_rules_uses_fallback ... ok
[INFO] [stdout] test routing_condition_serialization ... ok
[INFO] [stdout] test stream_chunk_finished_flag_true ... ok
[INFO] [stdout] test stream_chunk_delta_field ... ok
[INFO] [stdout] test template_render_multiple_same_var ... ok
[INFO] [stdout] test template_nested_partials ... ok
[INFO] [stdout] test template_render_whitespace_in_tag ... ok
[INFO] [stdout] test template_render_no_vars_passthrough ... ok
[INFO] [stdout] test template_missing_var_preserved ... ok
[INFO] [stdout] test template_system_prompt_rendering ... ok
[INFO] [stdout] test template_unknown_partial_errors ... ok
[INFO] [stdout] test guard_chain_empty_allows_all ... ok
[INFO] [stdout] test json_extract_from_long_prose ... ok
[INFO] [stdout] test router_model_name_contains ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 47 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/guard_chain_pipeline.rs (/opt/rustwide/target/debug/deps/guard_chain_pipeline-74c295be313c398b)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test test_chain_multiple_messages_content_checked_all ... ok
[INFO] [stdout] test test_empty_chain_always_allows ... ok
[INFO] [stdout] test test_chain_blocks_on_content_before_length_checked ... ok
[INFO] [stdout] test test_chain_blocks_on_length_when_content_clean ... ok
[INFO] [stderr]      Running tests/template_format.rs (/opt/rustwide/target/debug/deps/template_format-f897873f6f1e06c8)
[INFO] [stdout] test test_chain_allows_clean_short_message ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test test_render_json_template_multiple_vars ... ok
[INFO] [stdout] test test_extract_json_from_prose_response ... ok
[INFO] [stdout] test test_render_partial_then_strip_fence ... ok
[INFO] [stdout] test test_template_with_unknown_var_leaves_placeholder ... ok
[INFO] [stdout] test test_render_then_extract_json ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests llm_wasm
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test src/guard/mod.rs - guard::ContentGuard (line 42) ... ok
[INFO] [stdout] test src/guard/mod.rs - guard::LengthGuard (line 84) ... ok
[INFO] [stdout] test src/retry/mod.rs - retry::RetryPolicy (line 23) ... ok
[INFO] [stdout] test src/cache/mod.rs - cache::fnv1a_hash (line 35) ... ok
[INFO] [stdout] test src/cache/ttl.rs - cache::ttl::TtlCache (line 23) ... ok
[INFO] [stdout] test src/routing/mod.rs - routing::Router (line 63) ... ok
[INFO] [stdout] test src/cost/mod.rs - cost::CostLedger (line 85) ... ok
[INFO] [stdout] test src/guard/mod.rs - guard::GuardChain (line 126) ... ok
[INFO] [stdout] test src/template/mod.rs - template::TemplateEngine (line 19) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.83s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "cdf4bbaa00dac043a008d47cdbc6e524c94eb5bd38abe24ab09150b03e67d6c5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cdf4bbaa00dac043a008d47cdbc6e524c94eb5bd38abe24ab09150b03e67d6c5", kill_on_drop: false }`
[INFO] [stdout] cdf4bbaa00dac043a008d47cdbc6e524c94eb5bd38abe24ab09150b03e67d6c5
